//Program by:
//Ben Schmidt - bjs778 - 11054018
//Mike Nimeck - mfn028 - 11053045
//Jeff Huang - jlh105 - 11050226

static float FIREWORK_CENTER[3] = {0.0f, 0.0f, 0.0f};

extern float MAX_INITIAL_FIREWORK_SPEED;
extern float MAX_X_SPEED;
extern float MAX_Z_SPEED;

static float FIREWORK_XZ_SPEED = 1.0f;
static float FIREWORK_SPEED_SPEED = 1.0f;

extern float FIREWORK_SCALE_X;
extern float FIREWORK_SCALE_Y;
extern float FIREWORK_SCALE_Z;
extern float FIREWORK_SCALE[];

extern float FIREWORK_VELOCITY_BIAS[];
static float FIREWORKS_DEPTH = 0;
static float CALCULATED_DEPTH = 0;
static float FIREWORKS_X = 0; 
static float FIREWORKS_Y = 0;
const static float FIREWORKS_DEPTH_SPEED = 30;

static float NEAR_MAX =  -1000.0f;
static float FAR_MAX = 3000.0f;

extern int MAX_NUM_FIREWORKS;
extern float FIREWORK_FUZZINESS;

static GLsizei number_buf_objects = 5;


//initialize the fireworks particle system
void initFireworks();   

//generate initial positions and velocities
void init_firework_velocities(float* positions, unsigned int num_positions, float scale, const float *bias);

// What happens when the mouse is clicked
void fireworksMouseAction(int button, int state, int x, int y);
